↳ ITRS
↳ ITRStoIDPProof
z
cond(TRUE, x, y) → +@z(1@z, minus(x, +@z(y, 1@z)))
min(u, v) → if(<@z(u, v), u, v)
if(FALSE, u, v) → v
if(TRUE, u, v) → u
minus(x, x) → 0@z
minus(x, y) → cond(=@z(min(x, y), y), x, y)
cond(TRUE, x0, x1)
min(x0, x1)
if(FALSE, x0, x1)
if(TRUE, x0, x1)
minus(x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
z
cond(TRUE, x, y) → +@z(1@z, minus(x, +@z(y, 1@z)))
min(u, v) → if(<@z(u, v), u, v)
if(FALSE, u, v) → v
if(TRUE, u, v) → u
minus(x, x) → 0@z
minus(x, y) → cond(=@z(min(x, y), y), x, y)
(0) -> (2), if ((y[0] →* v[2])∧(x[0] →* u[2]))
(1) -> (3), if ((x[1] →* x[3])∧(y[1] →* y[3])∧(=@z(min(x[1], y[1]), y[1]) →* TRUE))
(3) -> (0), if ((+@z(y[3], 1@z) →* y[0])∧(x[3] →* x[0]))
(3) -> (1), if ((+@z(y[3], 1@z) →* y[1])∧(x[3] →* x[1]))
cond(TRUE, x0, x1)
min(x0, x1)
if(FALSE, x0, x1)
if(TRUE, x0, x1)
minus(x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
z
min(u, v) → if(<@z(u, v), u, v)
if(FALSE, u, v) → v
if(TRUE, u, v) → u
(0) -> (2), if ((y[0] →* v[2])∧(x[0] →* u[2]))
(1) -> (3), if ((x[1] →* x[3])∧(y[1] →* y[3])∧(=@z(min(x[1], y[1]), y[1]) →* TRUE))
(3) -> (0), if ((+@z(y[3], 1@z) →* y[0])∧(x[3] →* x[0]))
(3) -> (1), if ((+@z(y[3], 1@z) →* y[1])∧(x[3] →* x[1]))
cond(TRUE, x0, x1)
min(x0, x1)
if(FALSE, x0, x1)
if(TRUE, x0, x1)
minus(x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDPNonInfProof
z
min(u, v) → if(<@z(u, v), u, v)
if(FALSE, u, v) → v
if(TRUE, u, v) → u
(1) -> (3), if ((x[1] →* x[3])∧(y[1] →* y[3])∧(=@z(min(x[1], y[1]), y[1]) →* TRUE))
(3) -> (1), if ((+@z(y[3], 1@z) →* y[1])∧(x[3] →* x[1]))
cond(TRUE, x0, x1)
min(x0, x1)
if(FALSE, x0, x1)
if(TRUE, x0, x1)
minus(x0, x1)
(1) (MINUS(x[1], y[1])≥NonInfC∧MINUS(x[1], y[1])≥COND(=@z(min(x[1], y[1]), y[1]), x[1], y[1])∧(UIncreasing(COND(=@z(min(x[1], y[1]), y[1]), x[1], y[1])), ≥))
(2) ((UIncreasing(COND(=@z(min(x[1], y[1]), y[1]), x[1], y[1])), ≥)∧0 ≥ 0∧0 ≥ 0)
(3) ((UIncreasing(COND(=@z(min(x[1], y[1]), y[1]), x[1], y[1])), ≥)∧0 ≥ 0∧0 ≥ 0)
(4) ((UIncreasing(COND(=@z(min(x[1], y[1]), y[1]), x[1], y[1])), ≥)∧0 ≥ 0∧0 ≥ 0)
(5) ((UIncreasing(COND(=@z(min(x[1], y[1]), y[1]), x[1], y[1])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0)
(6) (=@z(min(x[1], y[1]), y[1])=TRUE∧y[1]=y[3]∧+@z(y[3], 1@z)=y[1]1∧x[3]=x[1]1∧x[1]=x[3] ⇒ COND(TRUE, x[3], y[3])≥NonInfC∧COND(TRUE, x[3], y[3])≥MINUS(x[3], +@z(y[3], 1@z))∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥))
(7) (<@z(x[1], y[1])=x1∧if(x1, x[1], y[1])=x0 @ PF>=@z_2∧>=@z(x0, y[1])=TRUE∧<@z(x[1], y[1])=x3∧if(x3, x[1], y[1])=x2 @ PF<=@z_2∧<=@z(x2, y[1])=TRUE ⇒ COND(TRUE, x[1], y[1])≥NonInfC∧COND(TRUE, x[1], y[1])≥MINUS(x[1], +@z(y[1], 1@z))∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥))
(8) (x4=x0 @ PF>=@z_2∧<@z(x5, x4)=FALSE∧>=@z(x0, x4)=TRUE∧<@z(x5, x4)=x3∧if(x3, x5, x4)=x2 @ PF<=@z_2∧<=@z(x2, x4)=TRUE ⇒ COND(TRUE, x5, x4)≥NonInfC∧COND(TRUE, x5, x4)≥MINUS(x5, +@z(x4, 1@z))∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥))
(9) (x7=x0 @ PF>=@z_2∧<@z(x7, x6)=TRUE∧>=@z(x0, x6)=TRUE∧<@z(x7, x6)=x3∧if(x3, x7, x6)=x2 @ PF<=@z_2∧<=@z(x2, x6)=TRUE ⇒ COND(TRUE, x7, x6)≥NonInfC∧COND(TRUE, x7, x6)≥MINUS(x7, +@z(x6, 1@z))∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥))
(10) (x8=x2 @ PF<=@z_2∧x8=x0 @ PF>=@z_2∧<@z(x9, x8)=FALSE∧>=@z(x0, x8)=TRUE∧<=@z(x2, x8)=TRUE ⇒ COND(TRUE, x9, x8)≥NonInfC∧COND(TRUE, x9, x8)≥MINUS(x9, +@z(x8, 1@z))∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥))
(11) (x11=x2 @ PF<=@z_2∧x10=x0 @ PF>=@z_2∧<@z(x11, x10)=FALSE∧>=@z(x0, x10)=TRUE∧<@z(x11, x10)=TRUE∧<=@z(x2, x10)=TRUE ⇒ COND(TRUE, x11, x10)≥NonInfC∧COND(TRUE, x11, x10)≥MINUS(x11, +@z(x10, 1@z))∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥))
(12) (x12=x2 @ PF<=@z_2∧x13=x0 @ PF>=@z_2∧<@z(x13, x12)=TRUE∧>=@z(x0, x12)=TRUE∧<@z(x13, x12)=FALSE∧<=@z(x2, x12)=TRUE ⇒ COND(TRUE, x13, x12)≥NonInfC∧COND(TRUE, x13, x12)≥MINUS(x13, +@z(x12, 1@z))∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥))
(13) (x15=x2 @ PF<=@z_2∧x15=x0 @ PF>=@z_2∧<@z(x15, x14)=TRUE∧>=@z(x0, x14)=TRUE∧<=@z(x2, x14)=TRUE ⇒ COND(TRUE, x15, x14)≥NonInfC∧COND(TRUE, x15, x14)≥MINUS(x15, +@z(x14, 1@z))∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥))
(14) (<@z(x9, x0)=FALSE∧>=@z(x0, x0)=TRUE∧<=@z(x0, x0)=TRUE ⇒ COND(TRUE, x9, x0)≥NonInfC∧COND(TRUE, x9, x0)≥MINUS(x9, +@z(x0, 1@z))∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥))
(15) (<@z(x2, x0)=FALSE∧>=@z(x0, x0)=TRUE∧<@z(x2, x0)=TRUE∧<=@z(x2, x0)=TRUE ⇒ COND(TRUE, x2, x0)≥NonInfC∧COND(TRUE, x2, x0)≥MINUS(x2, +@z(x0, 1@z))∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥))
(16) (<@z(x0, x2)=TRUE∧>=@z(x0, x2)=TRUE∧<@z(x0, x2)=FALSE∧<=@z(x2, x2)=TRUE ⇒ COND(TRUE, x0, x2)≥NonInfC∧COND(TRUE, x0, x2)≥MINUS(x0, +@z(x2, 1@z))∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥))
(17) (<@z(x0, x14)=TRUE∧>=@z(x0, x14)=TRUE∧<=@z(x0, x14)=TRUE ⇒ COND(TRUE, x0, x14)≥NonInfC∧COND(TRUE, x0, x14)≥MINUS(x0, +@z(x14, 1@z))∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥))
(18) (x9 + (-1)x0 ≥ 0∧0 ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧-1 + (-1)Bound + (-1)x0 + x9 ≥ 0∧0 ≥ 0)
(19) (x2 + (-1)x0 ≥ 0∧0 ≥ 0∧-1 + x0 + (-1)x2 ≥ 0∧x0 + (-1)x2 ≥ 0 ⇒ (UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧-1 + (-1)Bound + (-1)x0 + x2 ≥ 0∧0 ≥ 0)
(20) (-1 + x2 + (-1)x0 ≥ 0∧x0 + (-1)x2 ≥ 0∧x0 + (-1)x2 ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧-1 + (-1)Bound + (-1)x2 + x0 ≥ 0∧0 ≥ 0)
(21) (x14 + -1 + (-1)x0 ≥ 0∧x0 + (-1)x14 ≥ 0∧x14 + (-1)x0 ≥ 0 ⇒ (UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧-1 + (-1)Bound + (-1)x14 + x0 ≥ 0∧0 ≥ 0)
(22) (x14 + -1 + (-1)x0 ≥ 0∧x0 + (-1)x14 ≥ 0∧x14 + (-1)x0 ≥ 0 ⇒ (UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧-1 + (-1)Bound + (-1)x14 + x0 ≥ 0∧0 ≥ 0)
(23) (x9 + (-1)x0 ≥ 0∧0 ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧-1 + (-1)Bound + (-1)x0 + x9 ≥ 0∧0 ≥ 0)
(24) (-1 + x2 + (-1)x0 ≥ 0∧x0 + (-1)x2 ≥ 0∧x0 + (-1)x2 ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧-1 + (-1)Bound + (-1)x2 + x0 ≥ 0∧0 ≥ 0)
(25) (x2 + (-1)x0 ≥ 0∧0 ≥ 0∧-1 + x0 + (-1)x2 ≥ 0∧x0 + (-1)x2 ≥ 0 ⇒ (UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧-1 + (-1)Bound + (-1)x0 + x2 ≥ 0∧0 ≥ 0)
(26) (x14 + (-1)x0 ≥ 0∧x14 + -1 + (-1)x0 ≥ 0∧x0 + (-1)x14 ≥ 0 ⇒ (UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧0 ≥ 0∧-1 + (-1)Bound + (-1)x14 + x0 ≥ 0)
(27) (0 ≥ 0∧x9 + (-1)x0 ≥ 0∧0 ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧-1 + (-1)Bound + (-1)x0 + x9 ≥ 0)
(28) (x0 + (-1)x2 ≥ 0∧0 ≥ 0∧-1 + x2 + (-1)x0 ≥ 0∧x0 + (-1)x2 ≥ 0 ⇒ -1 + (-1)Bound + (-1)x2 + x0 ≥ 0∧0 ≥ 0∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥))
(29) (0 ≥ 0∧x2 + (-1)x0 ≥ 0∧x0 + (-1)x2 ≥ 0∧-1 + x0 + (-1)x2 ≥ 0 ⇒ (UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧-1 + (-1)Bound + (-1)x0 + x2 ≥ 0∧0 ≥ 0)
(30) (0 ≥ 0∧x0 ≥ 0∧0 ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧-1 + (-1)Bound + x0 ≥ 0)
(31) (0 ≥ 0∧x0 ≥ 0∧0 ≥ 0∧x9 ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧-1 + (-1)Bound + x0 ≥ 0)
(32) (0 ≥ 0∧x0 ≥ 0∧0 ≥ 0∧x9 ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(MINUS(x[3], +@z(y[3], 1@z))), ≥)∧-1 + (-1)Bound + x0 ≥ 0)
POL(=@z(x1, x2)) = -1
POL(if(x1, x2, x3)) = (-1)x3 + (-1)x2 + (-1)x1
POL(TRUE) = -1
POL(MINUS(x1, x2)) = -1 + (-1)x2 + x1
POL(+@z(x1, x2)) = x1 + x2
POL(FALSE) = -1
POL(COND(x1, x2, x3)) = -1 + (-1)x3 + x2
POL(<@z(x1, x2)) = -1
POL(min(x1, x2)) = 1 + x2 + x1
POL(1@z) = 1
POL(undefined) = -1
COND(TRUE, x[3], y[3]) → MINUS(x[3], +@z(y[3], 1@z))
COND(TRUE, x[3], y[3]) → MINUS(x[3], +@z(y[3], 1@z))
MINUS(x[1], y[1]) → COND(=@z(min(x[1], y[1]), y[1]), x[1], y[1])
+@z1 ↔
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDPNonInfProof
↳ IDP
↳ IDependencyGraphProof
z
min(u, v) → if(<@z(u, v), u, v)
if(FALSE, u, v) → v
if(TRUE, u, v) → u
cond(TRUE, x0, x1)
min(x0, x1)
if(FALSE, x0, x1)
if(TRUE, x0, x1)
minus(x0, x1)